package com.season.seasonStudy.javase.j_021_io;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class FileUse {
	public static void main(String[] args) {
		String filePath = "C:/Users/Jijie/Desktop/IOTest/a\\bb.txt";
		File fileOne = new File(filePath);
		/**
		 * File 对文件、目录两者进行操作 创建后的file对象只有那个路径/文件的信息，并没有内容
		 * 
		 * 
		 * Methods：
		 * boolean exists() 判断文件、目录是否存在;
		 * boolean isFile() 判断是否是文件;
		 * boolean isDirectory()同上吧，针对目录 ;
		 * String getPath() 获得路径（相对?） String;
		 * getAbsolutePath() 获得绝对路径 ;
		 * String getName 获得名字;
		 * boolean delete删除该对象指定的目录/文件 ;
		 * boolean createNewFile() 创建名称的空文件，不创建文件夹;
		 * long length()返回文件长度、以字节单位计量；若文件不存在，为0L;
		 * Stirng[] list()返回目录下文件、目录列表；
		 * 
		 */

		// 首先测试一下创建空文件 找一个绝对不可能存在的文件、路径
		{
			String pathTest1 = "C:/Users/Jijie/Desktop/IOTest/a\\pathTest1.txt";
			String pathTest2 = "C:/Users/Jijie/Desktop/IOTest/a/a/a/a\\pathTest2.txt";
			File fileTest1 = new File(pathTest1);
			File fileTest2 = new File(pathTest2);
			try {
				System.out.println("fileTest1 result is "+fileTest1.createNewFile());
				System.out.println("fileTest2 result is "+fileTest2.createNewFile());
				// 提示异常，找不到路径，所以呢，创建前，需保证路径是正确的。文件次要了：能创建就是true，不能（已经存在了）就是false
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		{//尝试着用递归写出来类似资源管理器的一个输出、逻辑结构。
			//这是个方法哎，你不能方法套方法，不过内部类是可以尝试的，可以自己造一个switch，都尝试输出以下
			String pathTest = "C:/Users/Jijie/Desktop/IOTest";
			Scanner scanner = new Scanner(System.in);
			String[] menu = {"用其他类的方法进行递归","是用异常来判定输出过程","是用内部类了，oh yeah"};
//			Tools.showMenu(menu);
			int choice =(scanner.hasNextInt())? scanner.nextInt():4;
			switch (choice-1) {
			case 0:
				Explorer explorer = new Explorer();
				explorer.showExplorer(pathTest);
				break;
			case 1:

				break;
			case 2:

				break;

			default:
				System.out.println("您的输入有误");
				break;
			}
		}

	}

}

class Explorer{
	int count;
	public void showExplorer(String path) {
		
		for (int i = 0; i < count; i++) {
			System.out.print("\t");
		}
		
		File file = new File(path);
		if(!file.exists()){
			//System.out.println("路径不存在");
		} else {
			if (file.isFile()) {
				System.out.println(file.getName());
				//count --;
				return;
			}
			else if (file.isDirectory()) {
				
				System.out.println(path.substring(path.lastIndexOf("/")+1));
				String[] list =  file.list();
				for (String string : list) {
					String newPath = path+"/"+string;
					count++;
					showExplorer(newPath);
					count--;
				}

			}
		}

	}

}
